package pl.put.dcs.workManagerServer.projectManager.queueManager.cacheManeger;

import pl.put.dcs.workManagerServer.projectManager.queueManager.cacheManeger.exceptions.CacheConnectionErrorException;
import pl.put.dcs.workManagerServer.projectManager.queueManager.cacheManeger.listeners.CacheContentChangeListener; 
import pl.put.model.packet.Packet; 

// <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
// #[regen=yes,id=DCE.5C9A7DA2-6F3E-99E5-FDA9-2B607933A6E3]
// </editor-fold> 
public interface CacheManager {

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.7BEAA232-ACB0-48FA-EAA8-FF7974882715]
    // </editor-fold> 
    public void putPacketInCache (Packet packet);

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.070C0A19-FD26-52C2-D447-B1439AAFBB92]
    // </editor-fold> 
    public boolean isPacketsNumberLimitReached ();

    public Packet getPacketFromCache( String packetId );

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.23867EBF-D7EB-E57B-6CF4-39CEEC38A8C5]
    // </editor-fold> 
    public Packet popPacketFromCache (String packetId);

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.6C22D983-CA8B-61CA-501D-65A1B9C4BFC4]
    // </editor-fold> 
    public void connect() throws CacheConnectionErrorException;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.C7AEC9A9-803A-2D8D-9660-A78675977458]
    // </editor-fold> 
    public void setCacheContentChangeListener (CacheContentChangeListener val);

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.FF3D5A9A-65DB-3CC7-BBCA-01AF19D4B87B]
    // </editor-fold> 
    public CacheContentChangeListener getCacheContentListener ();

}

